window: Set a _DBUS_APPLICATION_ID X11 window property
authorColin Walters <walters@verbum.org>
Fri, 25 Nov 2011 22:22:16 +0000 (17:22 -0500)
committerRyan Lortie <desrt@desrt.ca>
Mon, 19 Dec 2011 17:51:07 +0000 (12:51 -0500)
This will allow gnome-shell to reference it.

gtk/gtkwindow.c

index a64d0f33afb64bb16292a1e53e9b4f8c3fae9a1f..05816795676da40fd8cc5c4f352ed26802ba915b 100644 (file)
@@ -2681,6 +2681,7 @@ gtk_window_set_application (GtkWindow      *window,
                             GtkApplication *application)
 {
   GtkWindowPrivate *priv;
+  GdkWindow *gdkwindow;
 
   g_return_if_fail (GTK_IS_WINDOW (window));
 
@@ -2700,6 +2701,22 @@ gtk_window_set_application (GtkWindow      *window,
 
       g_object_notify (G_OBJECT (window), "application");
     }
+
+#ifdef GDK_WINDOWING_X11
+  gdkwindow = gtk_widget_get_window (GTK_WIDGET (window));
+  if (gdkwindow)
+    {
+      if (GDK_IS_X11_WINDOW (gdkwindow))
+       {
+         const char *id;
+         if (application)
+           id = g_application_get_application_id ((GApplication*)application);
+         else
+           id = NULL;
+         gdk_x11_window_set_utf8_property (gdkwindow, "_DBUS_APPLICATION_ID", id);
+       }
+    }
+#endif
 }
 
 /**
@@ -5201,7 +5218,7 @@ gtk_window_realize (GtkWidget *widget)
     gdk_window_set_modal_hint (gdk_window, TRUE);
   else
     gdk_window_set_modal_hint (gdk_window, FALSE);
-  
+
   if (priv->startup_id)
     {
 #ifdef GDK_WINDOWING_X11
@@ -5224,6 +5241,8 @@ gtk_window_realize (GtkWidget *widget)
     }
 #endif
 
+  gtk_window_set_application (window, gtk_window_get_application (window));
+
   /* Icons */
   gtk_window_realize_icon (window);